package com.ruoyi.xuexiao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.constant.TenementType;
import com.ruoyi.xuexiao.domain.entity.BasicRegion;
import com.ruoyi.xuexiao.domain.entity.KsJbxxhz;
import com.ruoyi.xuexiao.domain.param.KsDomParam;
import com.ruoyi.xuexiao.domain.vo.*;
import com.ruoyi.xuexiao.domain.param.KsJbxxhzParam;
import com.ruoyi.xuexiao.domain.param.KsJbxxhzRequestBodyParam;
import com.ruoyi.xuexiao.domain.param.KsJbxxhzRequestParam;
import com.ruoyi.xuexiao.domain.param.MineLayerDataParam;
import org.springframework.data.domain.Pageable;
import java.util.ArrayList;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

/**
 * 矿山基本信息汇总表Service层
 *
 * @author 齐浩宽
 * @since 2024年5月23日15:00:43
 */
public interface KsJbxxhzxService extends IService<KsJbxxhz> {

    /**
     * 查询矿山基本信息汇总表 抽查数据
     *
     * @author 齐浩宽
     * @since 2024年5月27日17:06:12
     */
    List<KsJbxxhzVo> getKsJbxhz(KsJbxxhzParam ksJbxxhzVo);

    /**
     * 查询矿山基本信息汇总表 地区 统计
     *
     * @author 齐浩宽
     * @since 2024年5月27日17:06:12
     */
    KsJbVo queryStatistics();

    /**
     * 分页查询矿山图层管理数据
     * @param mineLayerDataParam
     * @author 窦凯欣
     */
     TableDataInfo<KsJbxxhzLayerManagementVo> dataAll(MineLayerDataParam mineLayerDataParam);

    /**
     * 查询行政区二级数据
     * @author 窦凯欣
     */
    List<BasicRegion> getXzq();

    /**
     * 获取矿权类型下拉框
     * @author 窦凯欣
     */
    List<TenementType> getKql();


    /**
     * 查询矿山基本信息汇总分页列表
     * @param ksJbxxhzRequestBodyParam 查询矿山基本信息汇总分页列查询条件对象
     * @return TableDataInfo 包含矿山基本信息汇总分页列表的数据对象
     * 郭伟明
     */
    TableDataInfo selectKsJbxxhzList(KsJbxxhzRequestBodyParam ksJbxxhzRequestBodyParam);

    /**
     * 编辑回显
     * @param ksDomParam 矿山基本信息汇总查询条件对象
     * @param ksDomParam 矿山基本信息汇总查询条件对象
     * @return Map<String,Object> 包含矿山基本信息汇总分页列表的数据对象
     * 郭伟明
     */
    Map<String,Object> EditEcho(KsDomParam ksDomParam, Pageable pageable);


    /**
     * 获取下拉框（许可证号、矿山名称）
     *
     * @author 郭梓强
     * @since 2024年5月27日10:46:12
     * */
    KsJbXxHzDropdownVo selWhole(KsJbxxhzRequestParam ksJbxxhzRequestParam);

    /**
     * 获取全部矿山基本信息汇总-条件（分页）
     *
     * @author 郭梓强
     * @since 2024年5月27日20:21:12
     */
    List<KsJbxxhz> selInformation(KsJbxxhzRequestParam ksJbxxhzRequestParam);
    /**
     * 数据转换-（分页）
     *
     * @author 郭梓强
     * @since 2024年5月27日20:21:12
     */
    List<KsJbXxHzReturnVo> Transformation(List<KsJbxxhz> ksJbxxhzList);

    /**
     * 新设-矿山基本信息汇总
     *
     * @author 郭梓强
     * @since 2024年5月27日20:27:32
     */
    boolean addInformation(KsJbxxhzRequestParam ksJbxxhzRequestParam) throws InvocationTargetException, IllegalAccessException;

    /**
     * 删除-矿山基本信息汇总（id）
     *
     * @author 郭梓强
     * @since 2024年5月27日20:36:12
     * */
    boolean delJgKsJbXxHz(Integer id);

    /**
     * 延续-矿山基本信息汇总
     *
     * @author 郭梓强
     * @since 2024年5月27日20:36:12
     * */
    boolean updJgKsJbXxHz(KsJbxxhzRequestParam ksJbxxhzRequestParam) throws InvocationTargetException, IllegalAccessException;
}
